/*
 * @Author: 春天被折进纸里 3301231308@qq.com
 * @Date: 2024-03-08 17:25:23
 * @LastEditors: 春天被折进纸里 3301231308@qq.com
 * @LastEditTime: 2024-04-01 14:53:55
 * @FilePath: \visual-large-screen\src\mock\index.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import Mock from "mockjs";
// 城市列表
const cityList = [{
    cityCode: 420100,
    cityName: '武汉市',
    minLongitude: 113.41,
    maxLongitude: 115.05,
    minLatitude: 29.78,
    maxLatitude: 30.39,
    numberplate: /^[鄂][A][A-HJ-NP-Z0-9]{5}$/,
}, {
    cityCode: 440100,
    cityName: '广州市',
    minLongitude: 112.94,
    maxLongitude: 114.08,
    minLatitude: 22.47,
    maxLatitude: 23.39,
    numberplate: /^[粤][A][A-HJ-NP-Z0-9]{5}$/, //生成随机车牌号
}, {
    cityCode: 440300,
    cityName: '深圳市',
    minLongitude: 113.75,
    maxLongitude: 114.63,
    minLatitude: 22.27,
    maxLatitude: 22.45,
    numberplate: /^[粤][B][A-HJ-NP-Z0-9]{5}$/, //生成随机车牌号
}, {
    cityCode: 330100,
    cityName: '杭州市',
    minLongitude: 118.03,
    maxLongitude: 120.42,
    minLatitude: 29.07,
    maxLatitude: 30.28,
    numberplate: /^[浙][A][A-HJ-NP-Z0-9]{5}$/, //生成随机车牌号
}, {
    cityCode: 430100,
    cityName: '长沙市',
    minLongitude: 112.61,
    maxLongitude: 113.32,
    minLatitude: 27.80,
    maxLatitude: 28.23,
    numberplate: /^[湘][A][A-HJ-NP-Z0-9]{5}$/, //生成随机车牌号
}];

// 生成城市数据
let cityData = Mock.mock({
    "data": cityList,
});
//初始化 用户的地址信息
let address = {}

//设置用户个人信息
const userInfo = (address) => {
    return {
        'userId|+1': 202401,//用户id
        idCard: /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dX]$/,//用户身份证
        userTel: /^1[3-9]\d{9}$/,
        userName: "@cname", //生成用户名 ， 都是中国人的名字
        cityName: address.cityName,//城市
        numberplate: address.numberplate, //生成随机车牌号
        lng: Mock.Random.float(address.minLongitude, address.maxLongitude),//精度
        lat: Mock.Random.float(address.minLatitude, address.maxLatitude), //维度
    }
}
// 用数据
let userData = null

// 根据请求方式 获取参数的信息
const getArguments = (parameter) => {
    return parameter.type === "GET" ? JSON.parse(parameter.body) : JSON.parse(parameter.body)
}
//三个参数。第一个：路径，第二个：请求方式post/get，第三个：回调，返回值

// 获取所有的省市
Mock.mock(/address\/allCity/, "post", () => {
    return {
        message: "获取数成功",
        status: 200,
        data: cityData.data
    };
});
// 获取用户信息
Mock.mock(/user\/userList/, "post", (parameter) => {
    let parameters = getArguments(parameter);
    cityList.filter(item => {
        if (item.cityCode === parameters.cityCode) return address = item;
    })
    // 生成用户数据
    userData = Mock.mock({
        'data|15': [userInfo(address)]
    })
    console.log(userData)

    return {
        message: "获取数成功",
        status: 200,
        data: userData.data
    };
});


